1. Field of the Invention
The present invention relates to emulation of a first type of computer system on a second computer system. More specifically, the present invention relates to the compression of graphic data for a first computer system on a second computer system.
2. Background
Prior approaches to emulation frequently involve emulating the hardware upon which a target, or emulated platform, is based. That is, the underlying hardware upon which the emulated system is based is emulated in the emulating system.
An example of such an emulation system is shown with reference to FIG. 1. The system of FIG. 1 illustrates the MAE (Macintosh.RTM.) Application Environment) version 2.0 brand emulation system available from Apple Computer, Inc. of Cupertino, Calif. This version of MAE emulates the Motorola 68000 family of microprocessors on an X windows workstation, such as those available from Sun or Hewlett-Packard. In this architecture, the Macintosh.RTM. brand applications and the Finder portions of the Mac.RTM. OS brand operating system (trademarks of Apple Computer, Inc.) operate at the highest layer, and communicate with the Macintosh Toolbox and System ROM routines on a Macintosh.RTM. compatible computer system. These processes are in communication with a framework known as the Mac/Unix Scaffolding and a Motorola 68000 type emulator which is resident in the computer workstation. The emulator is in communication with OS Interface and Native Code Accelerator which communicate with various layers in the workstation, such as the X Window system itself, the Unix OS and Networking layer and the Unix Platform hardware at the lowest layer.
Common operations which are performed in such an environment are graphics routines which draw various objects requested by the underlying application or the operating system. Such operations can be performed in the X server/X client environment wherein a client system emulates the Macintosh system and transmits bitmap information over a network to an X server. For example, at a first step 202 an application (or the operating system) can invoke a toolbox imaging routine such as "FillRect.oval-hollow." in order to render an image on the display (e.g. a rectangle). The invocation of this function would cause a toolbox trap for imaging (e.g. "StdRect") for drawing the object at step 204. The emulation of the toolbox routine would cause the drawing of the object into an emulated frame buffer (for the emulated system) in the client at step 206. Subsequent thereto, the a toolbox trap might be caused which would request refresh of the screen at step 208, such as a "ShowCursor" command. The changed region of the emulated frame buffer would then be transmitted at step 210 over a network or other communication medium to the X Server. Subsequently thereto, the bit map is received by the X server at step 212 and the X server copies the bit map to the screen at step 214.
One shortcoming of this approach is the high network traffic which is generated. Because the emulation system emulates the lower levels of the Macintosh system, bit maps themselves are generated and transmitted between an X client and X server. In some typical single-user interaction circumstances, a large amount of network bandwidth may be consumed. Unfortunately, as the number of X servers increase, so does network traffic. As a result, the network can rapidly reach its maximum capacity.
Thus, improved techniques for emulation, especially in the client/server environment which are coupled over a network, is desired.